<template>
  <div>
    <!-- 底部部分 -->
    <footer class="footer">
      <span class="todo-count"><strong>{{leftCount}}</strong>剩余</span>
      <ul class="filters">
        <li>
          <a :class="{selected : type === 'all'}" href="#/" @click.prevent="filter('all')" >全部</a>
        </li>
        <li>
          <a @click.passive="filter('active')" :class="{selected : type === 'active'}" href="#/active">进行中</a>
        </li>
        <li>
          <a href="#/completed" :class="{selected : type === 'completed'}" @click.prevent="filter('completed')">已完成</a>
        </li>
      </ul>
      <button class="clear-completed" v-show="isShowClearDone" @click="clearDone">清除已完成</button>
    </footer>
  </div>
</template>

<script>
export default {
props:{
  //所有的列表项，从父组件传递过来的
  list:{
    type:Array,
    required:true,
  },
  type:{
    type:String,  // 指定父组件传过来的type属性的类型
  }
},
computed:{
  leftCount(){
    return this.list.filter(item=>item.isDone === false).length
  },
  // 是否展示清楚已完成的按钮
  // 什么时候需要展示清楚已完成的按钮？
  // list里面只要有一个数据的isDone属性为true，就需要展示按钮
  isShowClearDone() {
    return this.list.some(item=>item.isDone)
  }
},
methods:{
  clearDone(){
    // 触发父组件的清除方法
    this.$emit('clearDone')
  },
  filter(type){
    // 子组件不能直接修改父组件传递过来的基本值
  // this.type = type
  this.$emit("filter", type)
}
},
data(){
  return{
    // type:'all'
  }
},

}
</script>

<style>

</style>